#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QTime>
#include <QDebug>
#include <qdatetime.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <getopt.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <malloc.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <sys/ioctl.h>

#include <asm-generic/types.h>
#include <linux/videodev2.h>

#include <opencv2/opencv.hpp>

#include"thread.h"
#include"thread_open.h"
#include"thread_disp.h"
#include"serial.h"


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    void init_serial();
    void test_serial();
    void start_alert();
    void stop_alert();
    ~MainWindow();
signals:
    void s_display_img(QImage img);

private slots:

    void cameraopen();
    void cameraopen_O();
    void cameraopen_D();
    //声明函数

    void accept(QString msg);
    void display(int shownum);
    void display_img(QImage img);
    void changeDisplay();
private:

    Ui::MainWindow *ui;

     QTimer *timer;
     QTimer *timer_slow;

     Thread thread;

     Thread_O thread_open;

     Thread_D thread_disp;

     // void paintEvent(QPaintEvent *);

    //QTimer 计时用；

    //IplImage* pFrame;
    //申请IplImage类型指针，就是申请内存空间来存放每一帧图像

    //CvCapture *cam;
    // 视频获取结构， 用来作为视频获取函数的一个参数

};

#endif // MAINWINDOW_H
